#1
x <- 4

#2
class(x)

#3
is.vector(x)

#4
vector <- c(88, 5, 12, 13)

#5
va <- 1:5

#6
vector1 <- seq(12, 30, by = 3)

#7
vector2 <- seq(1.1, 2, length.out = 10)

#8
vector3 <- rep(8, 4)

#9
y <- c(31, 23, 78)
y <- append(y, 168 , after=1)

#10
y <- c(31, 23, 78)
y <- c(y[1], c(56, 24), y[-(1)])

#11
length(y)


#12
a <- c(1, 2, 4)
b <- c(5, 0, -1)
add <- a + b
print(add)
sub <- a - b
print(sub)
mul <- a * b
print(mul)
div <- a / b
print(div)

# 12. 计算c(1,2,4)和c(5,0,-1)的加减乘除后的结果
a <- c(1, 2, 4)
b <- c(5, 0, -1)
add <- a + b  # 加法
sub <- a - b  # 减法
mul <- a * b  # 乘法
div <- a / b  # 除法
print(add)
print(sub)
print(mul)
print(div)

# 13. 访问y向量的第2个元素
y <- c(31, 23, 78)
second_element <- y[2]
print(second_element)

# 14. 访问y向量的第2个到第4个元素
elements_2_to_4 <- y[2:4]
print(elements_2_to_4)

# 15. 将y向量的第2个到第4个元素修改为(8, 14, 67)
y[2:4] <- c(8, 14, 67)
print(y)

# 16. 访问y向量除了前3个元素外的其他元素
remaining_elements <- y[-(1:3)]
print(remaining_elements)

# 17. 给出如下列对象，用cbind函数创建一个矩阵ForeData
# 假设有以下列对象
X =c(1,1,1)
Y= c(2,2,2)
temp =c(14.7,18.5,25.9)
RH =c(66,73,41)
wind =c(2.7,8.5,3.6)
rain = c(0,0,0)
area =c(0,0,0)
rank =c(1,2,3)
ForeData = cbind(x,Y,temp,RH,wind,rain,area,rank)
print(ForeData)



# 18. 给出向量c(1,2,3,11,12,13)，创建2行3列的矩阵，按行排列，行命名为(row1,row2)
# 定义向量
vector <- c(1, 2, 3, 11, 12, 13)

# 创建2行3列的矩阵，按行排列
matrix_18 <- matrix(vector, nrow = 2, ncol = 3, byrow = TRUE, dimnames = list(c("row1", "row2"), c("c.1", "c.2", "c.3")))

# 打印矩阵
print(matrix_18)

# 19. 先创建2行2列的空矩阵x，然后按照列的方式依次给每个位置赋值1,2,3,4
x <- matrix(nrow = 2, ncol = 2)
x[, 1] <- c(1, 2)  # 赋值第一列
x[, 2] <- c(3, 4)  # 赋值第二列
print(x)

# 20. 访问ForeData矩阵的第2行第3列的元素
element_21 <- ForeData[2, 3]
print(element_21)

#21
# 对上述创建的x矩阵的行列进行重命名，行命名为 ('1','2')，列命名为 ('a','b')
rownames(x) <- c('1', '2')
colnames(x) <- c('a', 'b')
print(x)

# 21. 访问ForeData矩阵的第2行第3列的元素
element_21 <- ForeData[2, 3]
print(element_21)

# 访问ForeData矩阵的第1到2行，第1到3列的元素
# 这里假设图片中的数字是行号和列号，但图片内容不完整，所以只能猜测
elements_1_to_2_rows_1_to_3_cols <- ForeData[1:2, 1:3]
print(elements_1_to_2_rows_1_to_3_cols)

# 访问ForeData矩阵的第1到2行，第1列和第3列的元素（注意与22题的区别）
# 同样，这里假设图片中的数字是行号和列号
elements_1_to_2_rows_1st_and_3rd_cols <- ForeData[1:2, c(1, 3)]
print(elements_1_to_2_rows_1st_and_3rd_cols)

# 定义一个4行5列的三维数组，数值为1:60，行命名为(CR1, R2, R3, R4)，列命名
# 这里假设列名未给出，所以使用默认的列名
array_3d <- array(1:60, dim = c(4, 5, 3), dimnames = list(c("CR1", "R2", "R3", "R4"), NULL, NULL))
print(array_3d)

# 根据下面给定的列，创建一个数据框ForeDataFrm，列名分别为Fx, FY, Fmonth, Fday, Fter
# 这里假设有给定的列数据，但图片内容不完整，所以只能猜测

#ForeDataFrm <- data.frame(Fx = c(...), FY = c(...), Fmonth = c(...), Fday = c(...), Fter = c(...))
#print(ForeDataFrm)


# 22.定义三维数组，值为 0，列命名为 c('C1','C2','C3','C4','C5')，第三维度命名为 c('T1','T2','T3')
arr <- array(0, dim = c(2, 5, 3), dimnames = list(NULL, c('C1', 'C2', 'C3', 'C4', 'C5'), c('T1', 'T2', 'T3')))

# 25. 根据下面给定的列，创建一个数据框 ForeDataFrm，列名分别为 Fx、FY、Fmonth、Fday、Ftemp、FRH、Fwind、Frain、Farea
temp <- c(14.7, 18.5, 25.9)
wind <- c(2.7, 8.5, 3.6)
RH <- c(66, 73, 41)
rain <- c(0, 0, 0)
area <- c(0, 0, 0)
day <- c('fri', 'fri', 'fri')
month <- c('aug', 'aug', 'aug')
Y <- c(2, 2, 2)
x <- c(1, 1, 1)

ForeDataFrm <- data.frame(Fx = x, FY = Y, Fmonth = month, Fday = day, Ftemp = temp, FRH = RH, Fwind = wind, Frain = rain, Farea = area)

# 26.查看 ForeDataFrm 数据框的列名
colnames(ForeDataFrm)

# 27.判断 ForeDataFrm 是否是数据框类型
is.data.frame(ForeDataFrm)
# 22.定义三维数组，值为 0，列命名为 c('C1','C2','C3','C4','C5')，第三维度命名为 c('T1','T2','T3')
arr <- array(0, dim = c(2, 5, 3), dimnames = list(NULL, c('C1', 'C2', 'C3', 'C4', 'C5'), c('T1', 'T2', 'T3')))

# 25. 根据下面给定的列，创建一个数据框 ForeDataFrm，列名分别为 Fx、FY、Fmonth、Fday、Ftemp、FRH、Fwind、Frain、Farea
temp <- c(14.7, 18.5, 25.9)
wind <- c(2.7, 8.5, 3.6)
RH <- c(66, 73, 41)
rain <- c(0, 0, 0)
area <- c(0, 0, 0)
day <- c('fri', 'fri', 'fri')
month <- c('aug', 'aug', 'aug')
Y <- c(2, 2, 2)
x <- c(1, 1, 1)

ForeDataFrm <- data.frame(Fx = x, FY = Y, Fmonth = month, Fday = day, Ftemp = temp, FRH = RH, Fwind = wind, Frain = rain, Farea = area)

# 26.查看 ForeDataFrm 数据框的列名
colnames(ForeDataFrm)
